from user_agents import parse
from fastapi import Request


def worship():
    print("""
////////////////////////////////////////////////////////////////////
//                          _ooOoo_                               //
//                         o8888888o                              //
//                         88" . "88                              //
//                         (| ^_^ |)                              //
//                         O\  =  /O                              //
//                      ____/`---'\____                           //
//                    .'  \\|     |//   `.                         //
//                   /  \\|||  :  |||//   \                        //
//                  /  _||||| -:- |||||-  \                       //
//                  |   | \\\  -  /// |    |                       //
//                  | \_|  ''\---/''  |   |                       //
//                  \  .-\__  `-`  ___/-. /                       //
//                ___`. .'  /--.--\  `. . ___                     //
//              ."" '<  `.___\_<|>_/___.'  >'"".                  //
//            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
//            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
//      ========`-.____`-.___\_____/___.-`____.-'========         //
//                           `=---='                              //
//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
//             佛祖保佑       永不宕机      永无BUG                   //
////////////////////////////////////////////////////////////////////
    """)
    
def UserAgent(request: Request):
    # 获取IP
    if "x-forwarded-for" in request.headers:
        client_host = request.headers["x-forwarded-for"].split(",")[0]
    else:
        client_host = request.client.host
    
    # 解析User-Agent
    user_agent = request.headers.get("user-agent", "")
    user_agent_parsed = parse(user_agent)
        
    return {
        "ip_address": client_host,
        "device_info": {
            "browser": user_agent_parsed.browser.family,
            "browser_version": user_agent_parsed.browser.version_string,
            "os": user_agent_parsed.os.family,
            "os_version": user_agent_parsed.os.version_string,
            "device": user_agent_parsed.device.family,
            "device_type": "mobile" if user_agent_parsed.is_mobile else
                "tablet" if user_agent_parsed.is_tablet else
                "pc" if user_agent_parsed.is_pc else
                "bot" if user_agent_parsed.is_bot else "unknown"
        }
    }